﻿using System;
using System.Collections.Generic;
using Facebook.Api;

namespace Facebook
{
    public interface IFacebookContext
    {
        Int64 RequestCount { get; set; }
        String ApiKey { get; }
        String Version { get; }
        Boolean HasSession { get; }
        SessionInfo Session { get; }
        String Secret { get; }
        FacebookResponse<TValue> ExecuteRequest<TValue>(String methodName, IDictionary<String, Object> args, String responseXmlRoot);
        IAsyncResult BeginExecuteRequest(String methodName, IDictionary<String, Object> args, AsyncCallback callback);
        FacebookResponse<TValue> EndExecuteRequest<TValue>(IAsyncResult result, String responseXmlRoot);
        void HandleException(Exception ex);
        ApplicationType ApplicationType { get; }
    }
}